function [num, idx, pow, snr, res] = simpleDpk(p, din)

    dpkTime = p.dpkTime;
    thres   = p.dpkTres;
    nAnt  = p.nAnt;
    sincBuf = p.const.sincBuf;
    sincLen = size(p.const.sincBuf,1);
    num     = 0;
    idx     = [];
    pow     = [];
    res     = [];
    snr     = [];
    for i = 1 : dpkTime
        [maxPow,maxIdx] = max(abs(din));
        maxVal = din(maxIdx);

        for j = 1 : sincLen
            didx = bitand(j + sincLen - maxIdx, sincLen - 1) + 1;
            sincSeq(j) = sincBuf(didx) * maxVal;
        end
        
        din    = din - sincSeq;
        idx(i) = maxIdx;
        pow(i) = maxPow;
        res(i) = sum(abs(din));
    end

    for i = 1 : dpkTime
        if(pow(i) > res(dpkTime)/sincLen/(nAnt-dpkTime) * nAnt * thres)
            snr(i) = pow(i)/(res(dpkTime)/sincLen/(nAnt-dpkTime) * nAnt);
            num = num+1;
        end
    end
end